package io.github.wx.core;

import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.kit.Prop;
import com.jfinal.kit.PropKit;
import com.jfinal.template.Engine;
import com.jfinal.weixin.sdk.api.ApiConfigKit;
import io.github.wx.web.WeixinMsgController;

/**
 * Created by jie on 2017/4/1.
 * 框架的核心配置
 */
public class LmsCoreConfig extends JFinalConfig {
    private static Prop p = loadConfig();

    private static Prop loadConfig() {
        try {
            return PropKit.use("profile.dev.properties");
        } catch (Exception e) {
            return PropKit.use("profile.sit.properties");
        }
    }

    /**
     * 配置全局常量
     *
     * @param me Constants
     */
    public void configConstant(Constants me) {
        me.setDevMode(p.getBoolean("devMode", false));
        // ApiConfigKit 设为开发模式可以在开发阶段输出请求交互的 xml 与 json 数据
        ApiConfigKit.setDevMode(me.getDevMode());
    }

    /**
     * 配置路由
     *
     * @param me Routes
     */
    public void configRoute(Routes me) {
        me.add("/msg", WeixinMsgController.class);
    }

    /**
     * 配置模板引擎
     *
     * @param me Engine
     */
    public void configEngine(Engine me) {

    }

    /**
     * 配置插件
     *
     * @param me Plugins
     */
    public void configPlugin(Plugins me) {

    }

    /**
     * 配置拦截器
     *
     * @param me Interceptors
     */
    public void configInterceptor(Interceptors me) {

    }

    /**
     * 配置自定义处理器
     *
     * @param me Handlers
     */
    public void configHandler(Handlers me) {

    }

    /**
     * 程序启动入口
     * 特别注意：IDEA 之下建议的启动方式，仅比 eclipse 之下少了最后一个参数
     *
     * @param args Args
     */
    public static void main(String[] args) {
        JFinal.start("web/src/main/webapp", 80, "/");
    }
}
